function minitaur_disp = LoadRobotDisplay(robot, varargin)
    ip = inputParser;
    ip.addParameter('UseExported',true,@(x) isequal(x,true) || isequal(x,false));
    ip.addParameter('ExportPath','',@(x)ischar(x));
    ip.addParameter('SkipExporting',false,@(x) isequal(x,true) || isequal(x,false));
    
    ip.parse(varargin{:});
    
    opts = ip.Results;
    if isempty(opts.ExportPath)
        root_path = utils.get_root_path();
        export_path = fullfile(root_path,'gen','animator');
        opts.ExportPath = export_path;
    else
        export_path = opts.ExportPath;
    end
    if ~exist(export_path,'dir')
        mkdir(export_path);
    end
    addpath(export_path);
    
    f = figure(1000);clf;
    minitaur_disp = frost.Animator.Display(f, robot, opts);

    knee_front_rightL_link = CoordinateFrame(...
        'Name','knee_front_rightL_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_front_rightL_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_FrontRightL';
    offset = [0,0,0.2];
    front_rightL_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_front_rightL_link, offset, name, opts);
    minitaur_disp.addItem(front_rightL_lower_link);
    
    knee_front_rightR_link = CoordinateFrame(...
        'Name','knee_front_rightR_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_front_rightR_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_FrontRightR';
    offset = [0,0,0.24];
    front_rightR_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_front_rightR_link, offset, name, opts);
    minitaur_disp.addItem(front_rightR_lower_link);
    
    
    knee_back_rightL_link = CoordinateFrame(...
        'Name','knee_back_rightL_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_back_rightL_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_BackRightL';
    offset = [0,0,0.2];
    back_rightL_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_back_rightL_link, offset, name, opts);
    minitaur_disp.addItem(back_rightL_lower_link);
    
    knee_back_rightR_link = CoordinateFrame(...
        'Name','knee_back_rightR_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_back_rightR_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_BackRightR';
    offset = [0,0,0.24];
    back_rightR_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_back_rightR_link, offset, name, opts);
    minitaur_disp.addItem(back_rightR_lower_link);
    
    knee_front_leftL_link = CoordinateFrame(...
        'Name','knee_front_leftL_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_front_leftL_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_FrontLeftL';
    offset = [0,0,0.24];
    front_leftL_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_front_leftL_link, offset, name, opts);
    minitaur_disp.addItem(front_leftL_lower_link);
    
    knee_front_leftR_link = CoordinateFrame(...
        'Name','knee_front_leftR_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_front_leftR_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_FrontLeftR';
    offset = [0,0,0.2];
    front_leftR_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_front_leftR_link, offset, name, opts);
    minitaur_disp.addItem(front_leftR_lower_link);
    
    knee_back_leftL_link = CoordinateFrame(...
        'Name','knee_back_leftL_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_back_leftL_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_BackLeftL';
    offset = [0,0,0.24];
    back_leftL_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_back_leftL_link, offset, name, opts);
    minitaur_disp.addItem(back_leftL_lower_link);
    
    knee_back_leftR_link = CoordinateFrame(...
        'Name','knee_back_leftR_link',...
        'Reference',robot.Joints(getJointIndices(robot, 'knee_back_leftR_link')),...
        'Offset',[0,0,0],...
        'R',[0,0,0]...
        );
    name = 'LowerLink_BackLeftR';
    offset = [0,0,0.2];
    back_leftR_lower_link = frost.Animator.Cylinder(minitaur_disp.axs, robot, knee_back_leftR_link, offset, name, opts);
    minitaur_disp.addItem(back_leftR_lower_link);
    
end